package com.cskaoyan.day7._06_set;

import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

/**
 * @author Common-zhou
 * @since 2023-03-06 14:34
 */
public class Demo1 {
    public static void main(String[] args) {
        //test1();
        test2();

    }

    /**
     * TreeSet的使用
     */
    private static void test2() {
        // this.m =  new TreeMap<E,Object>()
        // new TreeMap<E,Object>()

        TreeSet<Integer> treeSet = new TreeSet<>();

        //m.put(e, PRESENT)==null;
        // PRESENT 使用了一个占位符
        treeSet.add(10);
        treeSet.add(10);
        treeSet.add(8);
        treeSet.add(6);
        treeSet.add(1);

        // 不允许存储null
        //treeSet.add(null);

        // 1 6 8 10
        // 变成有序的。
        System.out.println(treeSet);

        // 需要使用自定的类，放在TreeSet中，有两种方式
        // 1.实现Comparable接口
        // 2.传入Comparator

        // todo 使用TreeSet来完成自定义的类存储
        TreeSet<Object> objects = new TreeSet<>();
    }

    /**
     * Set 不允许存储重复元素
     */
    private static void test1() {
        //Set<Integer> set = new HashSet<>();
        Set<Integer> set = new LinkedHashSet<>();

        set.add(1);
        set.add(10);
        set.add(60);
        set.add(200);
        set.add(8);
        set.add(6);
        set.add(null);

        // 无序的
        // 和hashCode有关
        // HashSet是无序的
        // LinkedHashSet是有序的
        System.out.println(set);

    }
}
